Chapter 12 Software development

12.1 Program development lifecycle

Program development lifecycle – the process of developing a program set out in five stages:

Waterfall model – a linear sequential program development cycle, in which each stage is completed before the next is begun

Iterative model – a type of program development cycle in which a simple subset of the requirements is developed, then expanded or enhanced, with the development cycle being repeated until the full system has been developed

Rapid application development (RAD) – a type of program development cycle in which different parts of the requirements are developed in parallel, using prototyping to provide early user involvement in testing

12.2 Program design

Structure chart – a modelling tool used to decompose a problem into a set of sub-tasks. It shows the hierarchy or structure of the different modules and how they connect and interact with each other

 

A finite state machine (FSM) is a mathematical model of a machine that can be in one of a fixed set of possible states. One state is changed to another by an external input, this is called a transition. A diagram showing the behaviour of an FSM is called a state-transition diagram.

12.3 Program testing and maintainence

Trace table – a table showing the process of dry- running a program with columns showing the values of each variable as it changes Run-time error – an error found in a program when it is executed; the program may halt unexpectedly

 

Program testing

Several types of test data need to be used during testing:

Testings as the program is being developed:

When the program has been completed:

  1. Alpha testing - The completed, or nearly completed, program is tested in-house by the development team
  2. Beta testing - The completed program is tested by a small group of users before it is generally released
  3. Acceptance testing - used for the completed program to prove to the customer that it works as required in the environment in which it will be used

Program maintenance